The present invention relates to computer software, and more specifically, to computer software to move operators in streams computing applications based on memory use by the operators.
Streams computing applications may consist of streams of data flowing through elements of processing that form an operator graph. Many streams computing applications are written such that data structures within operators grow in size the longer the application runs. It is often difficult to determine which operators will grow in size as the data itself (namely, data tuples sent into the operator graph) dictates which data structures will grow in size. For example, consider an application that tracks vehicles distributes its data across a cluster of compute nodes by zip code. While one can reasonably assume that larger cities will have larger data volumes, it is often hard to predict the data volumes of smaller cities and towns. Eventually, in this type of distributed environment, operators may be placed on machines without truly understanding the resource requirements of the operators.